1. Technical Field
The present invention relates to processing compressed video signals, and more particularly relates to a system and method for implementing a local resource controller for scaling a main-stream decoding process in a media processing core.
2. Related Art
Multimedia processing systems have become a fast growing sector of the consumer electronics marketplace. Standards-based video processing (e.g., MPEG2, MPEG4, H.263, etc.) has become a key component for the success of this industry. Of all the video processing functions, video decoding is typically the most resource-consuming process among all the various processing functions. The video decoding process is carried out pursuant to one of the various standards, which ensures an appropriate output quality level. However, such standards generally assume that the decoder is working with unlimited resources.
At the heart of a multimedia processing system is a media processor core (MPC), which performs all of the processing functions. Often however, the demand for concurrent multimedia processing and decoding functions exceeds the capabilities (i.e., computational power) of the MPC. When this occurs, resources (e.g., CPU cycles, memory size, memory bandwidth, power consumption, etc.) allocated to each individual function become limited. One solution for a system subject to resource constraints is to xe2x80x9cscale,xe2x80x9d i.e., reduce the complexity, of certain processing functions or algorithms. The trade-off of a scaling operation, however, is reduced output quality.
For a resource-limited system, the available computer resources for a particular processing function may change over time depending on the system load. To guarantee the system works in a timely manner, the algorithm complexity levels need to be dynamically adapted to the available resources over time by trading off the output results. Accordingly, a need exists for a scalable decoder that can dynamically adapt to the resource constraints. Moreover, a low-cost, efficient, and resource-constrained complexity scalable video decoder is critical for the next generation multi-functional, multi-purpose multimedia video devices.
This invention overcomes the above-mentioned problems, as well as others, by providing a complexity scalable decoder system that can dynamically adapt to the resource constraints. In a first aspect, the invention provides a complexity scalable decoder system, comprising: a decoder having a plurality of functional blocks for decoding compressed video data, wherein the decoder further includes a plurality of scalable functions for selectively reducing a complexity of at least one of the functional blocks; and a local resource controller for generating a scaling strategy for the decoder, wherein the scaling strategy is selected in response to a complexity requirement received from a system resource manager, and wherein the scaling strategy is selected from a plurality of predetermined scaling strategies available to the local resource controller.
In a second aspect, the invention provides a method of providing a complexity scalable decoder system in a media processor core having a plurality of processing functions and a resource manager, comprising the steps of: sending a complexity requirement from the resource manager to a local resource controller associated with a scalable decoder; selecting a scaling strategy from a look-up table in response to the complexity requirement; communicating the scaling strategy to the scalable decoder; and reducing a complexity of the scalable decoder based on the communicated scaling strategy.
In a third aspect, the invention provides a program product stored on a recordable medium, which when executed, provides local resource control to a scalable decoder in a media processing core, the program product comprising: program code configured to receive a complexity requirement from a resource manager; program code configured to select a scaling strategy from a plurality of predetermined scaling strategies based on the received complexity requirement; and program code configured to communicate the selected scaling strategy to the scalable decoder.